﻿using System;

namespace DataStore.Domain
{
    /// <summary>
    /// A document that presents the author's research and findings and is 
    /// submitted in support of candidature for a degree or professional 
    /// qualification.
    /// </summary>
    [Serializable]
    public class Thesis : CatalogItem
    {
        /// <summary>
        /// The name of the school where a thesis was written.
        /// </summary>
        /// <value>The school.</value>
        public virtual string School { get; set; }

        /// <summary>
        /// Sciencific name of the document
        /// </summary>
        public virtual ThesisType ThesisType { get; set; }

        /// <summary>
        /// Scientific degree after defense
        /// </summary>
        public virtual DegreeType Degree { get; set; }

        /// <summary>
        /// Department of school
        /// </summary>
        public virtual string Department { get; set; }

        /// <summary>
        /// Date of defense
        /// </summary>
        public virtual DateTime? DateOfDefense { get; set; }

        /// <summary>
        /// Short description of the content
        /// </summary>
        public virtual string Abstract { get; set; }

        /// <summary>
        /// Returns a <see cref="System.String"/> that represents this instance.
        /// </summary>
        /// <returns>
        /// A <see cref="System.String"/> that represents this instance.
        /// </returns>
        public override string ToString()
        {
            return Title;
        }
    }
}
